-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
updated tests running average coverage calculations in cloud executors #102
Conversation
|
While I am not full sure what caused the issue between nextflow version 23.04.0 and version 24.04.4, I was able to identify the code block that caused the issue, along with the potentially relevant PRs. Within the QCReportFields there were some closures in arrays defined like so:
The issue seemed to arise from the GString, appearing in a closure which is technically with in another closure so the value of at the first index of There is a snippet of code later on the checks if a value is contained within a map, but due to whatever comparison is implemented the value with the type If we change the config code in the snippet above to:
The code now works. The potentially relelvant issue and PR affecting this I beleive are here: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks great Matthew. Thanks so much for all your work on fixing this issue 😄
I have a few comments for you.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks great Matthew! Just one question to make sure I understand the def generate_coverage_data
function correctly 😄
Also, thank you for the references on GStrings in closures (squared!) - I've made a note to keep that knowledge handy for the future!
@@ -130,14 +130,13 @@ def generate_coverage_data(sample_data, bp_field, species){ | |||
&& species[species_data_pos].fixed_genome_size != null){ | |||
|
|||
def length = species[species_data_pos].fixed_genome_size.toLong() | |||
def cov = base_pairs / q_length | |||
def cov = base_pairs / length |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just checking to make sure I understand the difference between q_length and length:
- is
q_length
a dynamic value specific to each sample entry insample_data
? - is
length
a fixed value of the species genome size, as in a standard reference for each species.?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is correct! however, I think I have something mixed up. Just reading through the code again to make sure I am reporting the correct thing.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
q_length
or query length here is the genome length generated by quast in this case or whatever path is pointed to in the QCReportFields
of the nextflow.config
while the length field is the length specified in the QCReport
section for a specific organism.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fantastic! Thanks for looking into this!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks so much for solving this issue Matthew. This looks really great 😄
updating tests of mirkokondo to determine why average coverage values are not appearing in cloud executors.